<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Flexible workspace issues</title>
  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
</head>
<body text="#000000" bgcolor="#FFFFFF">
 
<table width="100%">
<tr><td style="background:#0080C0"><b><span style="color:white">Flexible workspace issues</span></b></td></tr>
</table>
<font size=-1>[<a href="index.html">Flexible workspaces home</a>]</font><br>
<font size="-1">Last modified: November 22, 2005</font> 
<p>
Many ideas, requests, and issues have been raised during discussion of the flexible workspaces
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=106176">plan item</a>.
This document attempts to capture those requests, and provide pointers to 
related documents and/or bug reports.  Note that appearance of a request or
issue here does not imply that a solution is committed for Eclipse 3.2.
</p>
<h3>EFS features</h3>
These feature requests are related to the Eclipse file system API (org.eclipse.core.filesystem):
<ul>
<li>Exclusion filters. It is sometimes useful to be able to operate on a subset
of the files and directories in a particular file system. For example, a plugin might
want to filter out its private metadata files, or a user may want to exclude from
view a large sub-directory that they are not using.  The EFS would be
a good place to add exclusion (and possibly inclusion) filters in a way that is
opaque to other clients of a file system.
See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=84988">84988</a>.
</li>
<li>
File system change notification.  Some file systems provide native support for
notification when the file system changes.  The resources plugin has an extension
point for plugging in refresh providers, but EFS currently has no support like this.
See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112980">112980</a>,
and bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=108697">108697</a>
for Linux inotify support.
</li>
<li>
Composite file systems. EFS providers may want to implement composite file
systems that delegate file system operations to different underlying file systems.
For example, a writable file system could be overlayed on a read-only file
system to allow writes to occur on a file system that would not otherwise
be writable.  Or, a write through cache could be implemented for a slow file system by adding
a transient local file system on top of a network file system. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=112938">112938</a>.
</li>
<li>
Support for native symbolic links.  Java provides no API for identifying and
working with symbolic links, and there is no explicit support for this in the IResource
API either. The EFS API might be a good place for such support. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44107">44107</a>.
</li>
</ul>

<h3>Resources plugin features</h3>
These feature requests are related to the Eclipse resource API (org.eclipse.core.resources):
<ul>
<li><img src="../../../images/glass.gif"  height="10" width="10" border="0">
Overlapping projects.  Currently, there is some limited support for overlapping
resources through linking.  For example, a linked folder in one project can
point to a folder in another resource.  This overlapping is currently not permitted
at the project level.  Consider relaxing this limitation to provide more
support for existing file system layouts that hierarchically nest project-like
groups of files and directories.  If desired, exclusion filters could be used to ensure
that overlapping portions of projects are not duplicated. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44967">44967</a>.
</li>
<li><img src="../../../images/ok.gif" height="10" width="10" border="0">
Arbitrary depth linked resources.  Linked resources have the current limitation
that their parent resource must be a project. Consider relaxing this limitation
to allow resources to be linked at arbitrary depth in the workspace. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=73695">73695</a>.
</li>
</ul>
<h3>UI features</h3>
These feature requests are related to the Eclipse IDE UI (org.eclipse.ui.ide):
<ul>
<li>The Java development tools have a notion of inclusion and exclusion filters, and UI is provided
for configuring these filters.  If the resources plugin provided similar inclusion
and exclusion filters, the platform UI should provide building block pieces for
configuring these filters. Ideally, JDT and platform should be using the same
building blocks to ensure the GUI is consistent. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=103213">103213</a>.
</li>
<li><img src="../../../images/new.gif" border="0">
A common dialog or widget set is needed to allow the user to select a file or
directory in an arbitrary file system.  For example, this is needed by new
project wizards that want to allow users to create projects stored in an arbitrary
file system. See bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116414">116414</a>.
</li>
</ul>

<!-- LEGEND -->
<table border="0" cellspacing="5" cellpadding="2" width="100%">
	<tbody>
		<tr>
			<td align="left" valign="top" colspan="4" bgcolor="#0080C0"
				width="100%"><b><font face="Arial,Helvetica"><font color="#ffffff">Legend
			</font></font></b></td>
		</tr>
		<tr>
			<td valign="top"><img src="../../../images/progress.gif" height="5" width="14" border="0"></td>
			<td width="50%">item is under development.</td>
			<td valign="top"><img src="../../../images/glass.gif"  height="10" width="10" border="0"></td>
			<td width="50%">item is under investigation.</td>
		</tr>
		<tr>
			<td valign="top"><img src="../../../images/ok.gif"  height="10" width="10" border="0"></td>
			<td width="50%">item is finished.</td>
			<td valign="top">( )</td>
			<td width="50%">item is time permitted.</td>
		</tr>
		<tr>
			<td valign="top"><font class="indexsub" color="#8080ff">[&gt;3.2]</font></td>
			<td width="50%">item is deferred.</td>
			<td valign="top"><font class="indexsub"><img border="0" src="../../../images/new.gif"></font></td>
			<td width="50%">new</td>
		</tr>
	</tbody>
</table>
</body>
</html>